﻿namespace Blaze.Framework.MonoEventListeners
{
    using UnityEngine;

    public class Mouse : MonoBehaviour
    {
        public event EventHandler OnMouseDownEvent;

        public event EventHandler OnMouseDragEvent;

        public event EventHandler OnMouseEnterEvent;

        public event EventHandler OnMouseExitEvent;

        public event EventHandler OnMouseOverEvent;

        public event EventHandler OnMouseUpAsButtonEvent;

        public event EventHandler OnMouseUpEvent;

        private void OnMouseDown()
        {
            OnMouseDownEvent?.Invoke(gameObject);
        }

        private void OnMouseDrag()
        {
            OnMouseDragEvent?.Invoke(gameObject);
        }

        private void OnMouseEnter()
        {
            OnMouseEnterEvent?.Invoke(gameObject);
        }

        private void OnMouseExit()
        {
            OnMouseExitEvent?.Invoke(gameObject);
        }

        private void OnMouseOver()
        {
            OnMouseOverEvent?.Invoke(gameObject);
        }

        private void OnMouseUp()
        {
            OnMouseUpEvent?.Invoke(gameObject);
        }

        private void OnMouseUpAsButton()
        {
            OnMouseUpAsButtonEvent?.Invoke(gameObject);
        }
    }
}